#include "TimerFd.h"
#include "Thread.h"
#include <unistd.h>
#include <iostream>

using std::cout;
using std::endl;

class MyTask
{
public:
    void process()
    {
        cout << "MyTask is running!" << endl;
    }
};

void test()
{

    MyTask task;
    //程序启动3s之后，会执行一次任务，然后每隔6s会再次执行任务
    //原因就是6s是一个间隔时间（也就是6s触发一次read操作）
    //但是poll的第三个参数是5s超时
    /* TimerFd tf(3, 6, std::bind(&MyTask::process, &task)); */
    TimerFd tf(1, 4, std::bind(&MyTask::process, &task));

    Thread th(std::bind(&TimerFd::start, &tf));
    th.start();//read

    sleep(30);

    tf.stop();
    th.join();
}

int main(int argc, char **argv)
{
    test();
    return 0;
}

